package com.example.tests;

import static com.example.fw.ContactHelper.MODIFICATION;
import static org.hamcrest.Matchers.equalTo;
import static org.junit.Assert.assertThat;

import java.util.Random;

import org.testng.annotations.Test;

import com.example.utils.SortedListOf;

public class ContactModificationFromDetailsTests extends TestBase {
	@Test
	public void modifySomeContact() {
		// save old state
		SortedListOf<ContactData> oldContactList = app.getContactHelper().getContacts();

		Random rnd = new Random();
		int index = rnd.nextInt(oldContactList.size()-1);

		// actions
		ContactData contact = new ContactData()
			.withFirstName("First name upd 2")
			.withLastName("Last name upd 2");
		app.getContactHelper()
			.openContactDetais(index)
			.initContactDetaisModification()
			.fillContactForm(contact, MODIFICATION)
			.submitContactModification()
			.returnToMainPage();
		
		// save new state
		SortedListOf<ContactData> newContactList = app.getContactHelper().getContacts();

		//compare states
		assertThat(newContactList, equalTo(oldContactList.without(index).withAdded(contact)));
	}

}